#include <iostream>
#include <vector>

using namespace  std;

// 函数模板 -- 参数匹配
//template<class T>
//bool Less(T left, T right)
//{
// return left < right;
//}
//
//template<class>
//bool Less(Date*)(Date* left, Date* right)
//{
//  return *left < *right;
//}
//
//int main()
//{
// cout << Less(1, 2) << endl; // 可以比较，结果正确
// Date d1(2022, 7, 7);
// Date d2(2022, 7, 8);
// cout << Less(d1, d2) << endl; // 可以比较，结果正确
// Date* p1 = &d1;
// Date* p2 = &d2;
// cout << Less(p1, p2) << endl; // 可以比较，结果错误
// return 0;
//}

    template <class>
	struct less<T*>
	{
		bool operator()(const T* left, const T* right)const
		{
			return *left < *right;
		}
	};
 






